Skip Headers

Oracle® Database Application Developer's Guide - Rules Manager and Expression Filter 10g Release 2 (10.2) Part Number B14288-01 |
Home | Book List | Contents | Index | Master Index | Feedback

Previous | Next
| View PDF

# F XML Schemas

The following XML Schemas for the rule class properties and the rule conditions can be used to build authoring tools for rule management:

Rule Class Properties

    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                xmlns:xdb="http://xmlns.oracle.com/xdb"
                xmlns:rlmp="http://www.oracle.com/rlmgr/rsetprop.xsd"
                elementFormDefault="qualified"
                targetNamespace="http://www.oracle.com/rlmgr/rsetprop.xsd">
    <xsd:element name="simple" type="rlmp:SimpleRuleSetProp"/>
    <xsd:element name="composite" type="rlmp:CompositeRuleSetProp">
      <xsd:unique name="objtype">
        <xsd:selector xpath="./object"/>
        <xsd:field xpath="@type"/>
      </xsd:unique>
    </xsd:element>

    <!-- Properties of a rule class with simple events -->
    <xsd:complexType name="SimpleRuleSetProp">
      <xsd:complexContent>
        <xsd:restriction base="xsd:anyType"> <!-- empty element -->
          <xsd:attribute name="ordering" type="xsd:string"/>
          <xsd:attribute name="storage" type="xsd:string"/>
          <xsd:attribute name="autocommit">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="yes"/>
                <xsd:enumeration value="no"/>
              </xsd:restriction>
            </xsd:simpleType>
          </xsd:attribute>
          <xsd:attribute name="dmlevents">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="I"/>
                <xsd:enumeration value="IU"/>
                <xsd:enumeration value="IUD"/>
              </xsd:restriction>
            </xsd:simpleType>
          </xsd:attribute>
          <xsd:attribute name="consumption">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="exclusive"/>
               <xsd:enumeration value="shared"/>
               <xsd:enumeration value="rule"/>
             </xsd:restriction>
           </xsd:simpleType>
         </xsd:attribute>
       </xsd:restriction>
      </xsd:complexContent>
    </xsd:complexType>

    <!-- Properties of a rule class with composite events -->
    <xsd:complexType name="CompositeRuleSetProp">
      <xsd:sequence>
        <xsd:element name="object" type="rlmp:PrimEventProp" minOccurs="0"
                     maxOccurs="unbounded"/>
      </xsd:sequence>

      <xsd:attribute name="ordering" type="xsd:string"/>
      <xsd:attribute name="storage" type="xsd:string"/>
      <xsd:attribute name="autocommit">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="yes"/>
            <xsd:enumeration value="no"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:attribute>
      <xsd:attribute name="equal" type="xsd:string"/>
      <xsd:attribute name="consumption">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="exclusive"/>
            <xsd:enumeration value="shared"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:attribute>
      <xsd:attribute name="duration">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:pattern value="call"/>
            <xsd:pattern value="([1-9]|[1-9][0-9]|[1-9][0-9]{2}|[1-9][0-9]{3})
                                                       (minutes|hours|days)"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:attribute>
    </xsd:complexType>

    <!-- Primitive event properties with a composite event/rule class -->
    <xsd:complexType name="PrimEventProp">
      <xsd:complexContent>
        <xsd:restriction base="xsd:anyType">
          <xsd:attribute name="type" type="xsd:string" use="required"/>
          <xsd:attribute name="consumption">
            <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                <xsd:enumeration value="exclusive"/>
                <xsd:enumeration value="shared"/>
              </xsd:restriction>
            </xsd:simpleType>
          </xsd:attribute>
        <xsd:attribute name="duration">
          <xsd:simpleType>
            <xsd:restriction base="xsd:string">
              <xsd:pattern value="transaction"/>
              <xsd:pattern value="session"/>
              <xsd:pattern value="([1-9]|[1-9][0-9]|[1-9][0-9]{2}|[1-9][0-9]{3})
                                                         (minutes|hours|days)"/>
            </xsd:restriction>
          </xsd:simpleType>
         </xsd:attribute>
        </xsd:restriction>
       </xsd:complexContent>
      </xsd:complexType>
    </xsd:schema>

Rule Condition

    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                xmlns:xdb="http://xmlns.oracle.com/xdb"
                xmlns:rlmc="http://www.oracle.com/rlmgr/rulecond.xsd"
                elementFormDefault="qualified"
                targetNamespace="http://www.oracle.com/rlmgr/rulecond.xsd">

          <xsd:element name="condition">
            <xsd:complexType mixed="true">
              <xsd:choice>
                <xsd:element name="and" type="rlmc:AndType"
                                        minOccurs="0" maxOccurs="1"/>
                <xsd:element name="any" type="rlmc:AnyType"
                                        minOccurs="0" maxOccurs="1"/>
                <xsd:element name="object" type="rlmc:ObjectCondType"
                                        minOccurs="0" maxOccurs="1"/>
              </xsd:choice>
            </xsd:complexType >
            <xsd:unique name="objNamesAny">
              <xsd:selector xpath=".//object"/>
              <xsd:field xpath="@name"/>
            </xsd:unique>
          </xsd:element>

          <xsd:complexType name="AndType">
            <xsd:sequence>
              <xsd:element name="object" type="rlmc:ObjectCondType"
                           minOccurs="1" maxOccurs="unbounded"/>
              <xsd:choice>
                <xsd:element name="not" type="rlmc:NotCondType"
                           minOccurs="0" maxOccurs="1"/>

                <xsd:element name="notany" type="rlmc:NotAnyCondType"
                           minOccurs="0" maxOccurs="1"/>

              </xsd:choice>
            </xsd:sequence>
            <xsd:attribute name="join" type="xsd:string"/>
            <xsd:attribute name="equal" type="xsd:string"/>
            <xsd:attribute name="sequence">
              <xsd:simpleType>
                <xsd:restriction base="xsd:string">
                  <xsd:enumeration value="yes"/>
                  <xsd:enumeration value="no"/>
                </xsd:restriction>
              </xsd:simpleType>
            </xsd:attribute>
          </xsd:complexType>

          <xsd:complexType name="NotCondType">
            <xsd:sequence>
              <xsd:element name="object" type="rlmc:ObjectCondType"
                           minOccurs="0" maxOccurs="1"/>
            </xsd:sequence>
            <xsd:attribute name="by" type="xsd:string"/>
            <xsd:attribute name="join" type="xsd:string"/>
          </xsd:complexType>

          <xsd:complexType name="NotAnyCondType">
            <xsd:sequence>
              <xsd:element name="object" type="rlmc:ObjectCondType" minOccurs="1"
                           maxOccurs="unbounded"/>
            </xsd:sequence>
            <xsd:attribute name="count" type="xsd:positiveInteger"/>
            <xsd:attribute name="by" type="xsd:string"/>
            <xsd:attribute name="join" type="xsd:string"/>
          </xsd:complexType>

          <xsd:complexType name="AnyType">
            <xsd:sequence>
              <xsd:element name="object" type="rlmc:ObjectCondType" minOccurs="1"
                           maxOccurs="unbounded"/>
            </xsd:sequence>
            <xsd:attribute name="count" type="xsd:positiveInteger"/>
            <xsd:attribute name="join" type="xsd:string"/>
            <xsd:attribute name="equal" type="xsd:string"/>
            <xsd:attribute name="sequence">
              <xsd:simpleType>
                <xsd:restriction base="xsd:string">
                  <xsd:enumeration value="yes"/>
                  <xsd:enumeration value="no"/>
                </xsd:restriction>
              </xsd:simpleType>
            </xsd:attribute>
          </xsd:complexType>
          <xsd:complexType name="ObjectCondType">
            <xsd:simpleContent>
              <xsd:extension base="xsd:string">
                <xsd:attribute name="name" type="xsd:string" use="required"/>
              </xsd:extension>
            </xsd:simpleContent>
          </xsd:complexType>
       </xsd:schema>